module.exports=()=>{
    return async(ctx,next)=>{
         ctx.logger.info("获取配置",ctx.app.config.auth); 
         let authConfig=ctx.app.config.auth;
        if(!ctx.session.user)
        {
            if(ctx.query.ticket)
            {
                //todo 取token
                try
                {
                    let token= await  ctx.curl(`${authConfig.tokenUrl}?ticket=${ctx.query.ticket}`,{method:'GET',dataType:'json'});
                    ctx.logger.info("获取token",token.data.token);
                    let userInfo=await ctx.curl(authConfig.profileUrl,{method:'GET',dataType:'json',data:{token:token.data.token}});
                    ctx.logger.info("获取userinfo",userInfo.data);
                    if(userInfo.data)
                    {
                        ctx.session.user=userInfo.data;
                        await next();
                    }
                }
                catch (e) {
                    ctx.logger.error(e);
                    // /*ctx.redirect("/login");*/
                }
            }
            else
            {
                ctx.logger.info("没有ticket,跳转登录",ctx.url);

                ctx.redirect(`${authConfig.loginUrl}?returnUrl=${encodeURI(authConfig.callback)}`)
               // ctx.redirect("http://127.0.0.1:7001/login?returnUrl="+returnUrl)
            }

        }
        else
        {
            ctx.logger.info("已经登录");
            await next();
        }


    }
}